11 research outputs found

    Intersection types for unbind and rebind

    Full text link
    We define a type system with intersection types for an extension of lambda-calculus with unbind and rebind operators. In this calculus, a term with free variables, representing open code, can be packed into an "unbound" term, and passed around as a value. In order to execute inside code, an unbound term should be explicitly rebound at the point where it is used. Unbinding and rebinding are hierarchical, that is, the term can contain arbitrarily nested unbound terms, whose inside code can only be executed after a sequence of rebinds has been applied. Correspondingly, types are decorated with levels, and a term has type decorated with k if it needs k rebinds in order to reduce to a value. With intersection types we model the fact that a term can be used differently in contexts providing different numbers of unbinds. In particular, top-level terms, that is, terms not requiring unbinds to reduce to values, should have a value type, that is, an intersection type where at least one element has level 0. With the proposed intersection type system we get soundness under the call-by-value strategy, an issue which was not resolved by previous type systems.Comment: In Proceedings ITRS 2010, arXiv:1101.410

    Interpreting Church-Style Typed λ-Calculus in Curry-Style Type Assignment

    No full text
    It is well known that there are problems with the labelled syntax in Church-style type assignment to lambda-terms, the syntax in which the types of bound variables are indicated, as in λx : # . M , since if #-reduction is added then the Church-Rosser Theorem fails in general (although it has been proved for some common systems of type assignment) . In this paper, the labelled syntax is interpreted in the standard syntax of Curry-style type assignment by means of a constant Label, so that λx : # . M is taken as an abbreviation for Label#(λx . M ). The constant Label can be defined as a closed term, so that the labelled syntax is ultimately interpreted in a syntax for which the Church-Rosser Theorem is known to hold for both #-reduction and #-reduction. This interpretation is carried through for three well known systems of type assignment: ordinary type assignment, the second-order polymorphic typed lambda-calculus, and the calculus of constructions. These cases illustrate the general ..

    The (In)Efficiency of interaction

    No full text

    Elaborating intersection and union types

    No full text
    corecore